比特币上的Opensea,UTXO派系也可以实现非托管式电商模式Dex
Opensea过去一年的交易量高达19亿美元,过去一年opensea平台收入高达74百万美元,哪怕现在是熊市。
所以,像Opensea这种电商模式,非托管式的交易市场是很赚钱的。
现在主要是在以太坊生态上做这些生意。
比特币等UTXO生态上的用户现在也盯上了这一块生意。
受益于以太坊的可编程性,在EVM上实现电商模式&非托管式的NFT交易是非常容易,其基本原理是:
在以太坊上,持有ERC721等NFT标准资产的外部拥有账户(EOA)可以通过签名消息将NFT转移给另一个地址。这个签名消息包含了诸如售价等关键信息。
接收到签名消息的EOA地址只需根据签名消息的内容添加一些信息,例如支付金额。然后,他们可以构造整个交易,对其进行签名并广播到网络。这样,就可以完成交易。
这就是以太坊对资产的控制的方式更灵活的结果,而UTXO只能依赖于私钥签名才能花费,要实现电商模式&非托管式的NFT Dex,就要更难一些。
其实比特币上一直有dex协议,但脚本引擎太弱智了,实现dex比较土。
比特币上的DEX交易的是啥?
你可以简单是理解为一部分UTXO,交易,另一部分UTXO。UTXO天然就是非同质的,不同的UTXO就可以代表不同的东西。
序数协议(Ordinals)就是比特币所有的聪按挖出顺序进行排序,给每一个聪打上了一个数字。
铭文(Inscription)则是将每一个序数聪附上独一无二的信息(如小图片),以此将这些序数聪映射成了NFT。
brc20(以及各种brc xxx)则又将序数里的聪附着上一段数据,用来代表同质化代币。
本质上在比特币链上实现的brc20交易、铭文交易,都是用普通的比特币UTXO换序数UTXO。
最近铭文啊和各种brcxx很火,我测试了unisat的brc20交易市场,是实现了非托管式的电商模式dex。我测试了几笔交易,查看交易的脚本,大概原理是这样的:
1.首先要理解sighash标记符。在一笔比特币交易签名过程中,可以使用sighash来标记如何签名,有多种sighash,比如:
Sighash_all是默认的标记,表示交易所有输入和输出都被包含在签名中,整个交易任何部分被修改都会失效。
Sighash_none这个标记表示只有交易的输入被包含在签名中,输出不被包含。这种交易就允许其他用户随意改变交易的输出。
Sighash_single这个标记表达交易的一个输入和一个对应的输出被包含在签名中,其他用户可以添加更多的输入或输出。
unisat的dex,实现非托管的原理如下:
1.卖家先使用sighash_single,确认好自己的转出铭文的input和收款output;
2.卖家将自己签好的sighash_single标记交易发给unisat服务器,我估计这不会被广播,这只是一个签名,还没有组装好完整的交易;
3.unisat服务器会添加一个input和output,也采用sighash_single的标记签名,用来收手续费。然后在marketplace展示这笔卖单;
4.然后买家补充一个input,用于付款,再补充一个output,用于收ordinals,买家需要完成全部签名,把整笔交易完成了,并广播交易,并且需要买家支付矿工费;
5.如果卖家需要撤单,也要发一笔交易,完成整个签名,看起来像是自己买下来了,但不需要给unisat交fee。
上述过程,你会发现dex上虽然存在服务器,但服务器并不能偷走买卖双方的资产,资产在整个交易过程当中都完全由用户自己的私钥控制,这就是非托管。
上述原理本质上是用于出售具体的UTXO,即出售ordinals(序数)。即出售的都是NFT,非同质化代币。但brc20是同质化代币,这是利用ordinals设计的同质化代币,所以也能出售。
但有个问题,买家如何主动求购?
比如这个场景,“以某价格(如地板价)求购任一NFT”,在比特币的UTXO体系下就做不到。这个在EVM技术体系下是很容易做到的。
但比特币的UTXO体系可以做到,“买家指定某一个NFT(明确求购具体的UTXO)”。其原理如下:
1.买家使用single_single,将1个输入(付款)和所有的输出(要购买的NFT、收款地址、找零地址)全部确定下来,同时买家还要将要买的NFT的那个utxo定为输入但空着签名(这只能卖家来签名)
2.卖家看到订单后,将自己的签名添加进交易里,卖家只能添加签名,不能执行其他操作了。
鉴于区块链系统上都没有通知系统,这种求购特定NFT的方式。这就有点类似于godaddy上的求购域名方式。
而让买家主动求购brc20这类同质化代币,采用比特币现在的脚本引擎就更无法实现了。
但以太坊的EVM,就很容易实现。
另外,BCH上在上月(5月15日)升级了cashtoken,这个技术让UTXO可以实现上述“买家以某价格求购任一NFT,也可以求购特定数量的同质化代币。”
我觉得UTXO技术栈里做NFT电商&非托管dex是非常合适的,如果比特币的脚本引擎做适当的扩充就可以做的很好。
但现在比特币缺的是原生性的NFT资产。所谓的原生性的资产是指资产的安全性由矿工来保护,矿工会对代币进行100%的验证。
BRC20这些协议并不是原生性的UTXO资产,它们是客户端验证,矿工是不理会它们的。
BCH现在搞了cashtoken,可以用来发各种代币,包括非同质和同质,并且是原生性的资产。但BCH上整体流量太小,没什么人,无米之炊。